/**
 * 日期处理辅助类
 * 提供基础的日期格式化功能作为备用
 */

/**
 * 格式化日期
 * @param {Date|number|string} date - 日期对象、时间戳或日期字符串
 * @param {string} fmt - 格式化模板，如 'YYYY-MM-DD HH:mm:ss'
 * @return {string} 格式化后的日期字符串
 */
function format(date, fmt = 'YYYY-MM-DD') {
  if (!date) return '';
  
  // 转换为Date对象
  const d = typeof date === 'object' ? date : new Date(date);
  
  const year = d.getFullYear();
  const month = (d.getMonth() + 1).toString().padStart(2, '0');
  const day = d.getDate().toString().padStart(2, '0');
  const hours = d.getHours().toString().padStart(2, '0');
  const minutes = d.getMinutes().toString().padStart(2, '0');
  const seconds = d.getSeconds().toString().padStart(2, '0');
  
  return fmt
    .replace('YYYY', year)
    .replace('MM', month)
    .replace('DD', day)
    .replace('HH', hours)
    .replace('mm', minutes)
    .replace('ss', seconds);
}

/**
 * 格式化为中文日期
 * @param {Date|String|Number} date 日期对象、日期字符串或时间戳
 * @param {Boolean} withTime 是否包含时间
 * @returns {String} 格式化后的中文日期字符串
 */
function formatCN(date, withTime = false) {
  if (!date) return '';
  if (withTime) {
    return format(date, 'YYYY年MM月DD日 HH:mm:ss');
  }
  return format(date, 'YYYY年MM月DD日');
}

module.exports = {
  format,
  formatCN
};
